Computer systems provide multitasking environments wherein a user may concurrently run multiple on-line or networked applications which enable cooperative data processing with other parties (for one example see Lotus Notes®) and multiparty communications through real-time interactive communication applications such as Internet Relay Chat (IRC), Instant Messaging (IM), Web Browser, Chat-room and other applications. More particularly, real-time interactive communication applications enable the rapid exchange of a series of text-based message communications between a plurality of participating on-line parties. Real-time communication sessions may assume the efficient aspects of in-person conversations and conferences, wherein immediate feedback is received from a question or comment as soon as it is posed to and understood by the receiving party, and thus an issue or problem may be rapidly resolved through a cascading series of responsive communications as quickly as comments and responses may be composed and communicated by the parties. Thus, in one aspect, real-time interactive communications offer significant time-efficiency advantages over non-real-time means such as email, bulletin board and conventional postal service communications, wherein receipt and response to each message is necessarily delayed by the time required for delivery of each message to an intended party.
However, the rapid and immediate nature of real-time interactive communications presents problems in keeping track of individual messages or portions of messages. For example, real-time text-based interactive communication applications are generally configured to emphasize and display current incoming and outgoing messages in one window display at the expense of older messages, with each new message displayed immediately after a most recent previous outgoing or incoming message. As new messages are sent or received, older messages are effectively pushed out of the window to make room for the new ones. Such real-time interactive communications applications are thus generally configured with the immediacy aspects of real-time in-person oral conversations. Only the most recent messages are displayed in an on-line “conversation” for consideration and comment, much as the last spoken comments may be assumed to be the relevant comments at issue in a spoken conversation. Older less-ripe comments are sometimes disregarded unless restated in both oral conversations and in text-based on-line communication chats.
This type of configuration is problematic in text-based communications. Whereas in an oral conversation one party may easily and quickly restate an unanswered question or an answer not understood by another party, restatements in text-based communications require keyboarding and data entry operations that are cumbersome, annoying and often significantly slower for most users. Moreover, the apparent relevance of a given displayed text answer message may be lost or diminished to a receiving user as a function of time and proximity. Thus, when an answer is not immediately provided but is instead delayed, when received it may not be displayed adjacent to the instigating question message. Intervening messages created and sent and received in the time period between the asking and the answering will instead be interposed there between, in some cases pushing the original question off of the present display screen.
Furthermore, each user may ask multiple questions to one or more other users in any given on-line conversation, and each user may also be engaged in multiple real-time interactive communication application conversations at any one time. A user may also reply with another question or other non-responsive text message rather than an expected answer, or may answer only one of a series of pending questions. Or after originating a question, a user may switch to another task or close the real-time interactive communication application on-line session that contains all the questions and, thus, upon his return to the application in the present or a subsequent session, a displayed answer received in the intervening time period may not match up to the posed question.
Thus, unless an answer is received in an immediate, timely and direct response to a question without any intervening text on a user's display screen, problems may arise in recognizing question-answer correspondence and, in the case of multiple pending questions, in determining whether a given question has even been answered. Additionally, when a series of questions are posed and responsive answers are received out-of-sync, a user must remember the questions and understand the association of each answer; if instead an original question has been lost or forgotten then the user may have to re-type and resubmit the question. Such problems may result in time inefficiencies and aggravation, and perhaps in productivity and profit loss through on-line mishandled business opportunities (e.g. mishandled sales, customer service and help desk inquiries, etc.).
Other types of non-real-time text-based communication means avoid some of these problems through the associative nature of their formats. For example, a responsive email reply generally incorporates a previous email message between the same parties within the body of the email when it is composed through an email application “reply” option, thus inherently providing notice to the receiving party of the question or other issue that the email may be responsive or relevant to, and optionally including previous related emails within the body of the message as well. Bulletin board applications also directly associate each posted responses with an instigating posting, and further link all related messages in a message thread, also optionally organizing each message thread within subject matter categories and subcategories. However, such techniques are not appropriate for real-time text-based interactive communication applications.
More particularly, real-time text-based interactive communication applications are configured to enable rapid and copious message activity, and the much higher number of messages typically exchanged in an on-line conversation renders previous message incorporation and thread organization methods and systems unwieldy or impractical. Moreover, organizing some text-based communications into meaningful discrete “messages” for tracking may be difficult: for example, a user may pose a series of unrelated questions in one outgoing chat message, and thus considering all of the questions as one “message” for a thread or other message tracking configuration will not provide an indication as to which of the questions have been answered and which remain unanswered by any given reply message, nor would subsequent messages relevant to one of the questions be necessarily relevant to any of the other questions lumped into such a “thread’ organization.
Prior art real-time interactive text-based communication applications provide only indirect and inefficient solutions to the problems of tracking and correlating chat, IM and IRC and other messages. Generally a user must scroll back and forth through a plurality of screens from any given message in order to find and identify a relevant instigating message or topic. In some applications, a log or message history database may provide a reference function, however log or message histories may be interrupted or corrupted by data loss at any point of the thread, for example if a user application crashes or improperly shuts down or exits without saving an appropriate log breaking the integrity of a history or log. Moreover, such history or log-based message organization approaches also generally lack an effective means for quickly determining whether any given question or other query message has in fact received a response, or which query any particular response may be satisfying.